home *** CD-ROM | disk | FTP | other *** search
- #include "amiga.h"
- #include <intuition/intuition.h>
- #include <stdarg.h>
-
- static struct EasyStruct msg =
- {
- sizeof(struct EasyStruct),
- 0,
- NULL,
- NULL,
- "Ok",
- };
-
- static void message(char *format, long *args)
- /* Display a message which is as visible as possible (either to the console
- or to as a requester).
- Assume very little about library state */
- {
- LONG msg_EasyRequestArgs(struct Window *window, struct EasyStruct *easyStruct,
- ULONG * idcmpPtr, APTR args);
- #pragma libcall msg_IntuitionBase msg_EasyRequestArgs 24C BA9804
- BPTR fh;
- int close = FALSE;
- extern char *_ProgramName;
- extern struct WBStartup *WBenchMsg;
-
- fh = _us->pr_CES;
- if (!fh)
- if (!WBenchMsg && (fh = Open("console:", MODE_OLDFILE)))
- close = TRUE;
-
- if (fh) {
- FPrintf(fh, "%s: ", _ProgramName);
- VFPrintf(fh, format, (long *) args);
- FPutC(fh, '\n');
- if (close)
- Close(fh);
- } else {
- struct Window *win = (struct Window *) _us->pr_WindowPtr;
- if (win != (struct Window *) -1) {
- struct Library *msg_IntuitionBase = OpenLibrary("intuition.library", 37);
-
- if (msg_IntuitionBase) {
- msg.es_Title = _ProgramName;
- msg.es_TextFormat = format;
- msg_EasyRequestArgs(win, &msg, 0, args);
- CloseLibrary(msg_IntuitionBase);
- }
- }
- }
- }
-
- void _message(char *format,...)
- /* Display a message which is as visible as possible (either to the console
- or to as a requester).
- Assume very little about library state */
- {
- va_list args;
-
- va_start(args, format);
- message(format, (long *) args);
- }
-
- void _fail(char *format,...)
- /* Display a message which is as visible as possible (either to the console
- or to as a requester).
- Assume very little about library state.
- Exit with error code RETURN_FAIL after that. */
- {
- va_list args;
-
- va_start(args, format);
- message(format, (long *) args);
-
- exit(RETURN_FAIL); /* The library should always be cleanup-able */
- }
-